Platform Explorer / Nuxeo Platform 2023.22

Component org.nuxeo.ecm.platform.routing.layouts

Requirements

Resolution Order

774
The resolution order represents the order in which this component has been resolved by the Nuxeo Runtime framework.
You can influence this order by adding "require" tags in your component declaration, to make sure it is resolved after another component.

Contributions

XML Source

<?xml version="1.0"?>
<component name="org.nuxeo.ecm.platform.routing.layouts">

  <require>org.nuxeo.ecm.platform.routing.actions</require>
  <extension target="org.nuxeo.ecm.platform.forms.layout.WebLayoutManager"
    point="widgettypes">

    <widgetType name="current_route_description">
      <configuration>
        <sinceVersion>5.6</sinceVersion>
        <title>Description</title>
        <description>
          <p>This widget displays the name, description, author and
            creation
            date
            of the current route started on the current
            document.
          </p>
        </description>
        <categories>
          <category>routing</category>
        </categories>
        <supportedModes>
          <mode>view</mode>
        </supportedModes>
        <!-- no configurable properties -->
      </configuration>
      <handler-class>
        org.nuxeo.ecm.platform.forms.layout.facelets.plugins.TemplateWidgetTypeHandler
      </handler-class>
      <property name="template">
        /widgets/route/current_route_description_widget_template.xhtml
      </property>
    </widgetType>

    <widgetType name="current_route_show_graph">
      <configuration>
        <sinceVersion>5.6</sinceVersion>
        <title>Description</title>
        <description>
          <p>
            This widget displays the graph of the current route in a
            Fancybox
            popup.
          </p>
          A field to map the id of the document representing
          the workflow
          instance is required.
        </description>
        <categories>
          <category>routing</category>
        </categories>
        <supportedModes>
          <mode>view</mode>
          <fields>
            <list>false</list>
            <complex>false</complex>
            <supportedTypes>
              <type>string</type>
            </supportedTypes>
          </fields>
        </supportedModes>
        <!-- no configurable properties -->
      </configuration>
      <handler-class>
        org.nuxeo.ecm.platform.forms.layout.facelets.plugins.TemplateWidgetTypeHandler
      </handler-class>
      <property name="template">
        /widgets/route/current_route_show_graph_widget_template.xhtml
      </property>
    </widgetType>

    <widgetType name="current_route_abandon">
      <configuration>
        <sinceVersion>5.6</sinceVersion>
        <title>Description</title>
        <description>
          <p>
            This widget displays an 'Abandon' action to cancel the
            current
            route
            started on the current document.
          </p>
        </description>
        <categories>
          <category>routing</category>
        </categories>
        <supportedModes>
          <mode>view</mode>
        </supportedModes>
        <!-- no configurable properties -->
      </configuration>
      <handler-class>
        org.nuxeo.ecm.platform.forms.layout.facelets.plugins.TemplateWidgetTypeHandler
      </handler-class>
      <property name="template">
        /widgets/route/current_route_abandon_widget_template.xhtml
      </property>
    </widgetType>

    <widgetType name="current_route_user_tasks">
      <configuration>
        <sinceVersion>5.6</sinceVersion>
        <title>Description</title>
        <description>
          <p>
            This widget displays the user tasks of the current route on
            the
            current document. Duplicate of
            "summary_current_document_single_tasks" widget.
          </p>
        </description>
        <handlingLabels>true</handlingLabels>
        <categories>
          <category>routing</category>
        </categories>
        <supportedModes>
          <mode>view</mode>
        </supportedModes>
        <containingForm>true</containingForm>
        <!-- no configurable properties -->
      </configuration>
      <handler-class>
        org.nuxeo.ecm.platform.forms.layout.facelets.plugins.TemplateWidgetTypeHandler
      </handler-class>
      <property name="template">
        /widgets/summary/single_tasks_widget_template.xhtml
      </property>
    </widgetType>

    <widgetType name="current_route_open_tasks">
      <configuration>
        <sinceVersion>5.6</sinceVersion>
        <title>Description</title>
        <description>
          <p>
            This widget displays all the open tasks of the current
            route
            on the
            current document.
          </p>
        </description>
        <handlingLabels>true</handlingLabels>
        <categories>
          <category>routing</category>
        </categories>
        <supportedModes>
          <mode>view</mode>
        </supportedModes>
        <!-- no configurable properties -->
      </configuration>
      <handler-class>
        org.nuxeo.ecm.platform.forms.layout.facelets.plugins.TemplateWidgetTypeHandler
      </handler-class>
      <property name="template">
        /widgets/route/current_route_open_tasks_widget_template.xhtml
      </property>
    </widgetType>

    <widgetType name="task_workflow_title">
      <configuration>
        <title>
          Task workflow title
        </title>
        <description>
          <p>
            Displays the name of the worklow for a task, inside a h1 tag.
          </p>
          Two fields are required:
          <ul>
            <li>A field to map the task</li>
            <li>A field to map the task name</li>
          </ul>
        </description>
        <sinceVersion>5.8</sinceVersion>
        <categories>
          <category>routing</category>
        </categories>
        <supportedModes>
          <mode>view</mode>
        </supportedModes>
        <fields>
          <list>false</list>
          <complex>false</complex>
          <supportedTypes>
            <type>string</type>
          </supportedTypes>
        </fields>
      </configuration>
      <handler-class>
        org.nuxeo.ecm.platform.forms.layout.facelets.plugins.TemplateWidgetTypeHandler
      </handler-class>
      <property name="template">
        /widgets/task/task_workflow_title_widget_template.xhtml
      </property>
    </widgetType>

    <widgetType name="task_workflow_name">
      <configuration>
        <title>
          Task workflow name
        </title>
        <description>
          <p>
            Displays the name of the worklow for a task.
          </p>
          Two fields are required:
          <ul>
            <li>A field to map the task</li>
            <li>A field to map the task name</li>
          </ul>
        </description>
        <sinceVersion>5.8</sinceVersion>
        <categories>
          <category>routing</category>
        </categories>
        <supportedModes>
          <mode>view</mode>
        </supportedModes>
        <fields>
          <list>false</list>
          <complex>false</complex>
          <supportedTypes>
            <type>string</type>
          </supportedTypes>
        </fields>
      </configuration>
      <handler-class>
        org.nuxeo.ecm.platform.forms.layout.facelets.plugins.TemplateWidgetTypeHandler
      </handler-class>
      <property name="template">
        /widgets/task/task_workflow_name_widget_template.xhtml
      </property>
    </widgetType>

    <widgetType name="task_layout_with_actions">
      <configuration>
        <title>Listing the layout configured on Studio for the task or
          default
          actions for non routing tasks
        </title>
        <documentation>
          Two fields are required:
          <ul>
            <li>A field to map the task</li>
            <li>A field to map the task id</li>
          </ul>
        </documentation>
        <sinceVersion>5.8</sinceVersion>
        <categories>
          <category>routing</category>
        </categories>
        <supportedModes>
          <mode>view</mode>
        </supportedModes>
        <fields>
          <list>false</list>
          <complex>false</complex>
          <supportedTypes>
            <type>string</type>
          </supportedTypes>
        </fields>
      </configuration>
      <handler-class>
        org.nuxeo.ecm.platform.forms.layout.facelets.plugins.TemplateWidgetTypeHandler
      </handler-class>
      <property name="template">
        /widgets/task/task_layout_with_actions_widget.xhtml
      </property>
    </widgetType>

  </extension>

  <extension target="org.nuxeo.ecm.platform.forms.layout.WebLayoutManager"
    point="widgets">

    <widget name="current_route_description" type="current_route_description" />
    <widget name="current_route_show_graph" type="current_route_show_graph">
      <fields>
        <field>#{layoutValue.document.id}
        </field>
      </fields>
      <handlingLabels>true</handlingLabels>
    </widget>
    <widget name="current_route_abandon" type="current_route_abandon">
      <controls mode="any">
        <control name="requireSurroundingForm">true</control>
      </controls>
    </widget>
    <widget name="current_route_user_tasks" type="current_route_user_tasks">
      <labels>
        <label mode="any"></label>
      </labels>
      <properties widgetMode="any">
        <property name="displayTaskAdditionalActions">true</property>
      </properties>
      <controls mode="any">
        <control name="handleLabels">true</control>
        <control name="requireSurroundingForm">false</control>
      </controls>
    </widget>
    <widget name="current_route_open_tasks" type="current_route_open_tasks">
      <labels>
        <label mode="any"></label>
      </labels>
      <controls mode="any">
        <control name="handleLabels">true</control>
        <control name="requireSurroundingForm">true</control>
      </controls>
    </widget>

    <widget name="current_route_previous_tasks" type="contentViewWithForms">
      <labels>
        <label mode="any"></label>
      </labels>
      <translated>false</translated>
      <properties widgetMode="any">
        <property name="contentViewName">route_past_steps</property>
      </properties>
    </widget>

    <widget name="current_route_panel_top" type="documentActions">
      <labels>
        <label mode="any"></label>
      </labels>
      <properties widgetMode="any">
        <property name="category">CURRENT_ROUTE_PANEL_TOP</property>
        <property name="styleClass">summaryActions</property>
        <property name="actionContextDocument">#{layout.properties.currentDocumentForRoute}</property>
      </properties>
      <controls mode="any">
        <control name="handleLabels">true</control>
      </controls>
    </widget>

    <widget name="current_route_panel_left" type="container">
      <properties widgetMode="any">
        <property name="hideSubLabels">true</property>
        <property name="display">block_top</property>
        <property name="ajaxPanelId">currentRoutePanelLeft</property>
      </properties>
      <subWidgetRefs>
        <widget>current_route_tasks</widget>
      </subWidgetRefs>
    </widget>

    <widget name="current_route_tasks" type="documentActions">
      <labels>
        <label mode="any"></label>
      </labels>
      <properties widgetMode="any">
        <property name="category">CURRENT_ROUTE_PANEL_LEFT</property>
        <property name="styleClass">summaryActions</property>
        <property name="actionContextDocument">#{layout.properties.currentDocumentForRoute}</property>
      </properties>
      <controls mode="any">
        <control name="handleLabels">true</control>
      </controls>
    </widget>

    <widget name="current_route_panel_right" type="documentActions">
      <labels>
        <label mode="any"></label>
      </labels>
      <properties widgetMode="any">
        <property name="category">CURRENT_ROUTE_PANEL_RIGHT</property>
        <property name="styleClass">summaryActions</property>
        <property name="actionContextDocument">#{layout.properties.currentDocumentForRoute}</property>
      </properties>
      <controls mode="any">
        <control name="handleLabels">true</control>
      </controls>
    </widget>

    <widget name="current_route_panel_bottom" type="documentActions">
      <labels>
        <label mode="any"></label>
      </labels>
      <properties widgetMode="any">
        <property name="category">CURRENT_ROUTE_PANEL_BOTTOM</property>
        <property name="styleClass">summaryActions</property>
        <property name="actionContextDocument">#{layout.properties.currentDocumentForRoute}</property>
      </properties>
      <controls mode="any">
        <control name="handleLabels">true</control>
      </controls>
    </widget>

    <!-- for previous tasks layout -->
    <widget name="task_title" type="text">
      <labels>
        <label mode="any">label.workflow.task.Name</label>
      </labels>
      <translated>true</translated>
      <fields>
        <field>data.task.name</field>
      </fields>
      <properties mode="any">
        <property name="localize">true</property>
      </properties>
    </widget>
    <widget name="task_directive" type="text">
      <labels>
        <label mode="any">label.workflow.task.directive</label>
      </labels>
      <translated>true</translated>
      <fields>
        <field>data.task.directive</field>
      </fields>
      <properties mode="any">
        <property name="localize">true</property>
      </properties>
    </widget>
    <widget name="task_assignee" type="multiplePrefixedUsersSuggestion">
      <labels>
        <label mode="any">label.document.route.content.header.actors
        </label>
      </labels>
      <translated>true</translated>
      <fields>
        <field>data.task.actors</field>
      </fields>
    </widget>
    <widget name="task_comments" type="list">
      <labels>
        <label mode="any">label.content.header.comments</label>
      </labels>
      <translated>true</translated>
      <fields>
        <field>data.task.taskComments</field>
      </fields>
      <properties mode="any">
        <property name="localize">true</property>
        <property name="hideSubLabels">true</property>
      </properties>
      <subWidgets>
        <widget name="comment" type="text">
          <fields>
            <field>text</field>
          </fields>
        </widget>
      </subWidgets>
    </widget>
    <widget name="task_start_date" type="datetime">
      <labels>
        <label mode="any">label.workflow.task.startdate</label>
      </labels>
      <translated>true</translated>
      <fields>
        <field>data.dublincore.created</field>
      </fields>
    </widget>
    <widget name="task_due_date" type="datetime">
      <labels>
        <label mode="any">label.workflow.task.duedate</label>
      </labels>
      <translated>true</translated>
      <fields>
        <field>data.task.dueDate</field>
      </fields>
    </widget>

    <!-- for "task_layout" @since 5.8, apply to an object Task -->
    <widget name="task_workflow_title" type="task_workflow_title">
      <labels>
        <label mode="any">label.route.task.workflowStep</label>
      </labels>
      <translated>true</translated>
      <fields>
        <field></field>
        <field>name</field>
      </fields>
    </widget>
    <widget name="task_workflow_name" type="task_workflow_name">
      <labels>
        <label mode="any">label.route.task.workflowStep</label>
      </labels>
      <translated>true</translated>
      <fields>
        <field></field>
        <field>name</field>
      </fields>
    </widget>
    <widget name="task_show_workflow_graph" type="current_route_show_graph">
      <labels>
        <label mode="any"></label>
      </labels>
      <fields>
        <field>processId</field>
      </fields>
    </widget>
    <widget name="task_actors" type="multiplePrefixedUsersSuggestion">
      <labels>
        <label mode="any">label.document.route.content.header.actors
        </label>
      </labels>
      <translated>true</translated>
      <fields>
        <field>actors</field>
      </fields>
    </widget>
    <widget name="task_duedate" type="datetime">
      <labels>
        <label mode="any">label.workflow.task.duedate</label>
      </labels>
      <translated>true</translated>
      <fields>
        <field>dueDate</field>
      </fields>
    </widget>
    <widget name="task_simple_directive" type="text">
      <labels>
        <label mode="any">label.workflow.task.directive</label>
      </labels>
      <translated>true</translated>
      <fields>
        <field>directive</field>
      </fields>
      <properties mode="any">
        <property name="localize">true</property>
      </properties>
    </widget>
    <widget name="task_delegated_users" type="multiplePrefixedUsersSuggestion">
      <labels>
        <label mode="any">label.route.task.delegated.to</label>
      </labels>
      <translated>true</translated>
      <fields>
        <field>delegatedActors</field>
      </fields>
    </widget>
    <widget name="task_layout_with_actions" type="task_layout_with_actions">
      <labels>
        <label mode="any"></label>
      </labels>
      <fields>
        <field></field>
        <field>id</field>
      </fields>
    </widget>

    <widget name="reassign_task_widget" type="action">
      <properties widgetMode="any">
        <property name="action">#{webActions.getActionForDocument("reassignTask",null,
          false)}
        </property>
        <property name="styleClass">floatL</property>
        <property name="actionStyleClass">button</property>
        <property name="actionsDisplay">buttons</property>
        <property name="addForm">true</property>
        <property name="useAjaxForm">true</property>
        <property name="ignoreTemplateProperty">true</property>
      </properties>
      <widgetModes>
        <mode value="any">#{layoutValue.isCanBeReassigned()?'edit':'hidden'}
        </mode>
      </widgetModes>
    </widget>

    <widget name="delegate_task_widget" type="action">
      <properties widgetMode="any">
        <property name="action">#{webActions.getActionForDocument("delegateTask",null,
          false)}
        </property>
        <property name="styleClass">floatL</property>
        <property name="actionStyleClass">button</property>
        <property name="actionsDisplay">buttons</property>
        <property name="addForm">true</property>
        <property name="useAjaxForm">true</property>
        <property name="ignoreTemplateProperty">true</property>
      </properties>
    </widget>

  </extension>

  <extension target="org.nuxeo.ecm.platform.forms.layout.WebLayoutManager"
    point="layouts">

    <layout name="current_route_layout">
      <templates>
        <template mode="any">
          /layouts/layout_grid_template.xhtml
        </template>
      </templates>
      <rows>
        <row>
          <properties mode="any">
            <property name="nxl_gridStyleClass_0">gridStyle12</property>
            <property name="nxl_gridStyleClass_1">gridStyle7</property>
            <property name="nxl_gridStyleClass_2">gridStyle5</property>
            <property name="nxl_gridStyleClass_3">gridStyle12</property>
          </properties>
          <widget>current_route_panel_top</widget>
          <widget>current_route_panel_left</widget>
          <widget>current_route_panel_right</widget>
          <widget>current_route_panel_bottom</widget>
        </row>
      </rows>
    </layout>

    <!-- Route tasks content view layout -->
    <layout name="route_content_view_layout">
      <templates>
        <template mode="any">
          /layouts/layout_listing_ajax_template.xhtml
        </template>
      </templates>
      <properties mode="any">
        <property name="showListingHeader">true</property>
        <property name="showRowEvenOddClass">true</property>
      </properties>
      <columns>
        <column>
          <properties mode="any">
            <property name="useFirstWidgetLabelAsColumnHeader">true</property>
          </properties>
          <widget>task_title</widget>
        </column>
        <column>
          <properties mode="any">
            <property name="useFirstWidgetLabelAsColumnHeader">true</property>
          </properties>
          <widget>task_assignee</widget>
        </column>
        <column>
          <properties mode="any">
            <property name="useFirstWidgetLabelAsColumnHeader">true</property>
          </properties>
          <widget>task_directive</widget>
        </column>
        <column>
          <properties mode="any">
            <property name="useFirstWidgetLabelAsColumnHeader">true</property>
          </properties>
          <widget>task_comments</widget>
        </column>
        <column>
          <properties mode="any">
            <property name="useFirstWidgetLabelAsColumnHeader">true</property>
          </properties>
          <widget>task_start_date</widget>
        </column>
        <column>
          <properties mode="any">
            <property name="useFirstWidgetLabelAsColumnHeader">true</property>
          </properties>
          <widget>task_due_date</widget>
        </column>
      </columns>
    </layout>

    <!-- Past routes layout -->
    <layout name="previousRoutesLayout">
      <templates>
        <template mode="any">/layouts/layout_default_template.xhtml
        </template>
      </templates>
      <rows>
        <row>
          <widget>previousRoutesContentView</widget>
        </row>
      </rows>
      <widget name="previousRoutesContentView" type="contentViewWithForms">
        <labels>
          <label mode="any"></label>
        </labels>
        <translated>false</translated>
        <properties widgetMode="any">
          <property name="contentViewName">previous_routes</property>
          <property name="foldable">false</property>
        </properties>
      </widget>
    </layout>

    <layout name="graphViewLayout">
      <templates>
        <template mode="any">/layouts/layout_default_template.xhtml
        </template>
      </templates>
      <rows>
        <row>
          <widget>current_route_show_graph</widget>
        </row>
      </rows>
    </layout>

    <layout name="task_additional_actions_layout">
      <templates>
        <template mode="any">
          /layouts/layout_div_template.xhtml
        </template>
      </templates>
      <rows>
        <row>
          <widget>reassign_task_widget</widget>
          <widget>delegate_task_widget</widget>
        </row>
      </rows>
    </layout>

    <layout name="task_layout">
      <templates>
        <template mode="any">
          /layouts/layout_default_template.xhtml
        </template>
      </templates>
      <rows>
        <row>
          <widget>task_workflow_name</widget>
        </row>
        <row>
          <widget>task_actors</widget>
        </row>
        <row>
          <widget>task_delegated_users</widget>
        </row>
        <row>
          <widget>task_duedate</widget>
        </row>
        <row>
          <widget>task_simple_directive</widget>
        </row>
        <row>
          <widget>container_for_task_layout_with_actions</widget>
        </row>
      </rows>
      <widget name="container_for_task_layout_with_actions" type="container">
        <labels>
          <label mode="any"></label>
        </labels>
        <controls mode="any">
          <control name="handleLabels">true</control>
        </controls>
        <properties mode="any">
          <property name="hideSubLabels">true</property>
        </properties>
        <subWidgetRefs>
          <widget>task_layout_with_actions</widget>
        </subWidgetRefs>
      </widget>
    </layout>

    <layout name="workflowTaskReassignmentLayout">
      <!--applies to a TaskInfo -->
      <templates>
        <template mode="any">/layouts/layout_default_template.xhtml
        </template>
      </templates>
      <rows>
        <row>
          <widget>task_reassignment_actors</widget>
        </row>
        <row>
          <widget>task_reassignment_comment</widget>
        </row>
      </rows>
      <widget name="task_reassignment_actors" type="multipleUsersSuggestion">
        <labels>
          <label mode="any">label.workflow.task.actors</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>actors</field>
        </fields>
        <properties mode="any">
          <property name="required">true</property>
          <property name="prefixed">true</property>
        </properties>
      </widget>
      <widget name="task_reassignment_comment" type="textarea">
        <labels>
          <label mode="any">label.workflow.task.comment</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>comment</field>
        </fields>
      </widget>
    </layout>

    <layout name="userOpenTasksLayout">
      <templates>
        <template mode="any">
          /layouts/layout_div_template.xhtml
        </template>
      </templates>
      <rows>
        <row>
          <widget>current_user_open_tasks</widget>
        </row>
      </rows>
      <widget name="current_user_open_tasks" type="contentViewWithForms">
        <labels>
          <label mode="any"></label>
        </labels>
        <translated>false</translated>
        <controls mode="any">
          <control name="handleLabels">true</control>
        </controls>
        <properties widgetMode="any">
          <property name="contentViewName">user_open_tasks</property>
        </properties>
      </widget>
    </layout>
  </extension>

  <extension target="org.nuxeo.ecm.platform.actions.ActionService"
    point="actions">

    <action id="current_route_user_tasks" type="widget" order="100">
      <category>CURRENT_ROUTE_PANEL_LEFT</category>
      <properties>
        <property name="widgetName">current_route_user_tasks</property>
      </properties>
    </action>

    <action id="current_route_open_tasks" type="widget" order="200">
      <category>CURRENT_ROUTE_PANEL_LEFT</category>
      <properties>
        <property name="widgetName">current_route_open_tasks</property>
      </properties>
    </action>

    <action id="current_route_previous_tasks" type="widget" order="300">
      <category>CURRENT_ROUTE_PANEL_LEFT</category>
      <properties>
        <property name="widgetName">current_route_previous_tasks</property>
      </properties>
    </action>

    <action id="current_route_description" type="widget" order="100">
      <category>CURRENT_ROUTE_PANEL_RIGHT</category>
      <properties>
        <property name="widgetName">current_route_description</property>
      </properties>
    </action>

    <action id="current_route_show_graph" type="widget" order="200">
      <category>CURRENT_ROUTE_PANEL_RIGHT</category>
      <properties>
        <property name="widgetName">current_route_show_graph</property>
      </properties>
    </action>

    <action id="current_route_abandon" type="widget" order="300">
      <category>CURRENT_ROUTE_PANEL_RIGHT</category>
      <properties>
        <property name="widgetName">current_route_abandon</property>
      </properties>
      <filter-id>currentUserIsWorkflowInitatior</filter-id>
    </action>

  </extension>
</component>